利用 Jest 來寫你的第一個測試!
Jest是由Facebook,Inc.維護的JavaScript測試框架,其重點是簡單性 。 維基百科
步驟 Jest官網
資料夾先 init ,複習 npm
npm init
安裝 Jest
npm install jest
打開 package.json
, dependencies
有剛剛下載的 Jest
一個 index.js 寫 function
function double(n){
return n * 2
}
module.exports = double
一個檔案寫測試 index.test.js
用 XXX.test.js 是個慣例
var result = require('./index')
test(' 5*2 要等於 10 ', () => {
expect(result(5)).toBe(10);
});
注意不是用 node
來跑,應該是要下 jest
因此打開 package.json
看到 scripts
把 jest
加進去
執行
npm run test
- 錯的話就是 FAIL ,會跟你說錯在哪
- 對的話就 PASS
為何在外面不能直接下 jest
指令,因為 jest 是安裝在你的專案底下
所以如果用 npm 指令來跑,他會先找你專案底下的東西,找到 jest ,就可以利用它來執行。可是在外面就是系統來跑,系統是在其他地方找看你有沒有安裝,可是你沒有,你是安裝在專案底下,所以才會用這種寫法。
版本比較新可以在外面直接下
npx jest index.test.js
npx
附在比較新的 npm 版本裡面,下 npx
他就會 npm 底下找 jest 。
多個測試,要幾個有幾個
var result = require('./index')
test(' 5*2 要等於 10 ', () => {
expect(result(5)).toBe(10);
});
test(' 7*2 要等於 14 ', () => {
expect(result(7)).toBe(14);
});
test(' 2*2 要等於 4 ', () => {
expect(result(2)).toBe(4);
});
太分散,用個組合比較有結構
var result = require('./index')
describe ('測試', funstion(){
test(' 5*2 要等於 10 ', () => {
expect(result(5)).toBe(10);
});
test(' 7*2 要等於 14 ', () => {
expect(result(7)).toBe(14);
});
test(' 2*2 要等於 4 ', () => {
expect(result(2)).toBe(4);
});
})
最後 : 先寫測試再寫程式:TDD (測試驅動開發)
TDD (Test-Driven Development)